package com.shujia.wyh.day12.ketang;

/*
        多态的弊端：
                多态无法使用子类中特有的方法

        我就想使用子类中特有的方法，行不行？行
        怎么实现呢？
            1、创建子类对象，调用子类中的方法（不推荐，我们的问题是基于多态之上进行访问，而且这种方式太占内存了）
            2、把父类的引用强制转换为子类的引用。(向下转型)

        向上转型：
            父类的引用指向子类对象。
        向下转型：
            将父类的引用转成子类的类型。
 */

class Fu3 {
    public void show() {
        System.out.println("这是父类中的show方法");
    }
}

class Zi3 extends Fu3 {
    @Override
    public void show() {
        System.out.println("这是子类中重写后的show()方法");
    }


    public void fun() {
        System.out.println("这是子类特有的方法fun");
    }
}

public class DuoTaiDemo4 {
    public static void main(String[] args) {
//        Fu3 f = new Zi3();
//        f.show();
//        f.fun();
//        Zi3 zi3 = new Zi3();
//        zi3.fun();

        Fu3 f = new Zi3();
        f.show();
        Zi3 z2 = (Zi3)f;
        z2.fun();
        z2.show();
    }
}
